A major concern of businesses or any other group of people working together on a joint project is the efficient achievement of the goal of the project. In achieving this goal, many different tasks are performed by a variety of individuals within the group. Many of these tasks may only be performed after one or more other tasks are completed. Further, there is usually much communication between individuals or groups in the course of completing a task or in connection with indicating that a task has been completed. The various tasks necessary to complete the overall project or achieve an overall goal and the overall interrelationship between these tasks are called a work process.
Change is a common occurrence with automated process solutions, particularly because processes involve people. Developing anything beyond a simple automated process solution using traditional workflow products can prove to be a most challenging task for even the most experienced automation expert. Long and complicated development cycles are commonplace with complex automated solutions, and once created, can be extremely difficult to modify as the process evolves.
Current workflow technologies with their proprietary systems and dated architecture are no longer suitable to accommodate the changes in people, procedures, and resources that comprise a typical business process. Moreover, most existing workflow products cannot keep pace with the speed at which technology advances. The Internet, Information Technology (IT) infrastructures, and supporting workflow-related applications continuously evolve, enabling process automation to make giant strides, but only if the workflow application can accommodate these advances. Consequently, analysts and developers need a workflow solution that can change faster and more easily than a process can evolve, while harnessing the power of technological advancements.
Workflow is a relatively new concept which evolved out of an effort to automate business processes by developing specialized applications which incorporated the logic for the flow of work for a given process. The shortcoming of this approach is that any time a process changes, the entire application has to be updated resulting in a maintenance nightmare. Workflow was introduced to address this problem by encapsulating all aspects of a process. This includes process-defining information such as rules, routing paths, activities, data, etc. More importantly, it includes the automation of the management of this information. An application which supports workflow could then implement any workflow without requiring intimate knowledge of the workflow process itself.
Workflow systems were created to automate work processes. The history of workflow solutions has taken two general paths: (1) primitive framework, and (2) complete solutions with many limitations. The primitive framework approach provided a minimal skeleton, that is, code which was common to workflow systems, but not suited to any particular system. The primitive framework was difficult to deploy because it required creating a large amount of code to get the workflow system running for any particular application. On the other hand, the complete-solution-with-many-limitations approach included a large amount of code geared towards solving a particular application. However, the complete-solution approach did not apply to a variety of applications. A complete-solution workflow system was geared towards a particular Document Management System ((DMS)), Directory Services (DS) and DataBase system (DE). If any element of the workflow system was changed, a reworking of the workflow system was required. Consequently, continual maintenance was required whenever there was a change in a workflow element (including updates to a workflow element). For example, if a the (DMS) was changed to another (DMS), it required code changes in the workflow system. Thus, the complete-solution approach was inflexible and not readily adaptable to changes to applications.